package com.sinosoft.report;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.sinosoft.util.CheckEmpty;

public class ReportComments {
	
	/**
	 * 组合分组条件
	 * @param str 分组条件
	 * @param sign 隔离符号
	 * @return 以sign为分隔符的字符串
	 */
	public static String countStr(String[] str, String sign) {
		if (null == str || null == sign) {
			return null;
		}
		StringBuffer group = new StringBuffer();
		for (int i = 0; i < str.length; i++) {
			if (!CheckEmpty.isEmpty(str[i])) {
				if (group.toString().length() > 0) {
					group.append(sign + str[i]);
				} else {
					group.append(str[i]);
				}
			}
		}
		return group.toString();
	}

	/**
	 * 过滤排序条件
	 * 
	 * @param group
	 *            分组条件
	 * @param order
	 *            排序条件
	 * @param sign
	 *            隔离字符串
	 * @return 根据分组条件过滤排序条件
	 */
	public static String filterOrder(String[] group, String[] order, String sign) {
		StringBuffer ordersb = new StringBuffer();
		if (null == order) {
			return null;
		}
		for (int i = 0; i < order.length; i++) {
			String strorder = null;
			if (order[i].equals("num")) {
				strorder = order[i];
			} else {
				if (null != group) {
					for (int j = 0; j < group.length; j++) {
						if (order[i].equals(group[j])) {
							strorder = order[i];
							break;
						}
					}
				}

			}
			if (!CheckEmpty.isEmpty(strorder)) {
				if (ordersb.toString().length() > 0) {
					ordersb.append(sign + strorder);
				} else {
					ordersb.append(strorder);
				}
			}
		}
		return ordersb.toString();
	}
	
	//解析list的方法
	@SuppressWarnings("unchecked")
	public static Map getMap(String[] str)
	{
		Map<String,Object> map = new HashMap<String, Object>();
		for (int i = 0; i < str.length; i++) {
			String[] obj = str[i].split("_");
			if(obj.length>1)
				map.put(obj[1], obj[0]);
			else
				map.put(obj[0], obj[0]);
		}
		return map;
	}
	
	//组合下拉框的value和显示text
	public static List<Item> getList(String[] key_value){
		List<Item> list=null;
		try {
			if(null!=key_value&&key_value.length>0){
				list=new ArrayList<Item>();
				Item item=null;
				for (int i = 0; i < key_value.length; i++) {
					item=new Item();
					String kv=key_value[i];
					item.setKey(kv.substring(kv.indexOf("_")+1,kv.length()));
					item.setValue(kv.substring(0,kv.indexOf("_")));
					list.add(item);
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}
}
